package de.dpunkt.myaktion.data;

import java.io.Serializable;
import java.util.List;

import javax.ejb.ObjectNotFoundException;
import javax.ejb.Stateless;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.inject.Named;

import de.dpunkt.myaktion.model.Aktion;
import de.dpunkt.myaktion.service.AktionService;
import de.dpunkt.myaktion.util.qualifier.Added;
import de.dpunkt.myaktion.util.qualifier.Deleted;
import de.dpunkt.myaktion.util.qualifier.Updated;

@Stateless
public class AktionListProducer implements Serializable {

	private static final long serialVersionUID = 982951686360127738L;

	@Inject
	private AktionService aktionService;

	@Named
	@Produces
	public List<Aktion> getAktionen() {
		return aktionService.getAllAktionen();
	}

	public void doAddAktion(@Observes @Added final Aktion aktion) {
		aktionService.addAktion(aktion);
	}
	
	public void doDeleteAktion(@Observes @Deleted final Aktion aktion) throws ObjectNotFoundException {
		aktionService.deleteAktion(aktion);
	}

	public void doUpdateAktion(@Observes @Updated final Aktion aktion) throws ObjectNotFoundException {
		aktionService.updateAktion(aktion);
	}
}
